<template>
    <div class="sdy-search-history" >
        <div v-if="historyList.length" class="history box">
            <div class="title">
                <span>最近搜索</span>
                <van-icon @click="clearHistoryHandler" class="del" name="delete-o" />
            </div>
            <ul class="content">
                <li 
                    v-for="item in historyList"
                @click="clickHandler">{{ item }}</li>
                
            </ul>
        </div>
        <div class="hot box">
            <div class="title">
                <span>热门搜索</span>
                <span @click="isShow = !isShow">{{ isShow ? '隐藏' : '显示' }}</span>
            </div>
            <ul v-if="isShow" class="content">
                <li
                v-for="item in hotList"
                :key="item.wordid"
                @click="clickHandler"
                >{{ item.keyword }}</li>
                
            </ul>
            <div v-else class="hid">
                以隐藏搜索发现
            </div>
        </div>
    </div>

</template>

<script setup lang="ts">
import { ref, onMounted } from 'vue'
import { useRouter, type Router } from 'vue-router'

//倒入请求api
import { hotSearchApi } from '@/api/goods'

//导入对应的ts接口
import type { MyHotSearchItem } from '@/config/interface'

//历史记录相关
const $router: Router = useRouter()

//需要一个数组保存历史记录
const historyList = ref(JSON.parse(window.localStorage.getItem('history') as string) || [])

//准备一个变量，控制隐藏显示
const isShow = ref<boolean>(true)

//按钮点击的时候跳转到分类页面
const clickHandler = (e: Event) => {
    const text = (e.target as HTMLElement).innerText
    
    //需要跳转路由，需要携带text去到商品列表页
    $router.push({ path: '/list', query: { search: text } })
}

//点击历史揭露旁边的删除按钮
const clearHistoryHandler = () => {
    //删除localStorage 内的 history 一项
    window.localStorage.removeItem('history')
    historyList.value = []
}


//热门搜索相关
//准备一个变量保存热门搜索列表
const hotList = ref<MyHotSearchItem[]>([])


//挂在完毕后请求数据
onMounted(async () => {
    const res = await hotSearchApi()
    hotList.value = res.data
})



</script>

<style setup lang="scss">
    .sdy-search-history{
        height: 100%;
        box-sizing: border-box;
        padding: 15px;

        > .box {
            margin-bottom: 30px;

            > .title {
                display: flex;
                justify-content: space-between;

                .del {
                    font-size: 20px;
                }
            }

            > ul {
                display: flex;
                flex-wrap: wrap;
                margin-top: 5px;

                > li {
                    background-color: #ddd;
                    color: #fff;
                    padding: 2px 3px;
                    margin: 0 2px;
                }
            }
            > .hid {
                height: 100px;
                display: flex;
                justify-content: center;
                align-items: center;
            }
        }
    }
</style>